package com.sixiaojie.flink.dto;

import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单事件数据传输对象
 * 用于发送到Kafka
 */
@Data
public class OrderEvent {
    /**
     * 订单ID
     */
    private String orderId;
    /**
     * 用户ID
     */
    private Long userId;
    /**
     * 商品ID
     */
    private Long productId;
    /**
     * 购买数量
     */
    private Integer quantity;
    /**
     * 商品单价
     */
    private BigDecimal amount;
    /**
     * 订单当前状态
     * 状态机流转：
     * CREATED -> PAID -> SHIPPED -> DELIVERED -> COMPLETED
     *                ↘-> CANCELLED
     * 可能取值：
     * - CREATED（已创建）
     * - PAID（已支付）
     * - SHIPPED（已发货）
     * - DELIVERED（已送达）
     * - COMPLETED（已完成）
     * - CANCELLED（已取消）
     */
    private String status;
    /**
     * 事件发生时间戳
     */
    private Date timestamp = new Date();
}